package com.xc.file.service;

import com.xc.file.model.DownloadModel;

import javax.servlet.http.HttpServletResponse;
import java.io.File;

/**
 * <p>下载服务类</p>
 *
 * @author xc
 * @version v1.0.0
 */
public interface DownloadService {
    /**
     * <p>获取文件路径</p>
     *
     * @param hashCode 文件hash值
     * @return 如果存在多个文件全部返回
     */
    public String getFilePath(String hashCode);

    /**
     * <p>下载文件</p>
     *
     * @param response      Response
     * @param downloadModel 下载信息
     * @param w             宽
     * @param h             高
     * @param s             比例,小数
     */
    public void downloadFile(HttpServletResponse response, DownloadModel downloadModel, Integer w, Integer h, Double s);

    /**
     * <p>下载文件及断点续传</p>
     *
     * @param response      Response
     * @param downloadModel 下载信息
     */
    public void download(HttpServletResponse response, File file, DownloadModel downloadModel);

    /**
     * <p>压缩图片</p>
     *
     * @param file        需要压缩的文件地址
     * @param outFileName 输出文件名
     * @param w           宽
     * @param h           高
     * @param s           比例
     * @return 文件压缩地址
     */
    public String compressImage(File file, String outFileName, Integer w, Integer h, Double s);


}
